home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Add-Ons / MacsBug / KillIO dcmd / KillIO.c next >
Encoding:
C/C++ Source or Header  |  1994-12-03  |  1.8 KB  |  98 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        KillIO.c
  3.  
  4.     Contains:    KillIO dcmd for MacsBug
  5.  
  6.     Written by:    Chris Wysocki
  7.  
  8.     Copyright:    © 1994 Christopher R. Wysocki. All rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <1>     9/25/94    crw        Created from Vol.c
  13.  
  14. */
  15.  
  16. #include <Types.h>
  17. #include <Devices.h>
  18. #include <Files.h>
  19. #include <Errors.h>
  20.  
  21. #include "dcmd.h"
  22. #include "put.h"
  23.  
  24. //================================================================================
  25. //    CommandEntry
  26. //================================================================================
  27.  
  28. pascal void CommandEntry(dcmdBlock* paramPtr)
  29. {
  30.     Boolean ok = false;
  31.     long ref;
  32.     ParamBlockRec pb;
  33.     OSErr err;
  34.  
  35.     switch (paramPtr->request)
  36.       {
  37.         case dcmdInit:
  38.             break;
  39.  
  40.         case dcmdHelp:
  41.             dcmdDrawLine("\pKillIO refnum");
  42.             dcmdDrawLine("\p   Issues a KillIO call to the driver with the given refnum");
  43.             dcmdDrawLine("\p   Chris Wysocki - 25 Sept 1994");
  44.             break;
  45.  
  46.         case dcmdDoIt:
  47.             dcmdSwapWorlds();
  48.  
  49.             (void) dcmdGetNextExpression(&ref, &ok);
  50.  
  51.             if (ok)
  52.             {
  53.                 pb.ioParam.ioRefNum = (short) ref;
  54.                 err = PBKillIOSync(&pb);
  55.                 
  56.                 PutPStr("\pKillIO to driver ");
  57.                 PutUHexWord(ref);
  58.                 
  59.                 if (err == noErr)
  60.                     PutPStr("\p successful");
  61.                 else
  62.                 {
  63.                     PutPStr("\p returned error ");
  64.                     PutUHexWord((short) err);
  65.  
  66.                     switch (err)
  67.                     {
  68.                         case controlErr:
  69.                             PutPStr("\p (controlErr)");
  70.                             break;
  71.                         case badUnitErr:
  72.                             PutPStr("\p (badUnitErr)");
  73.                             break;
  74.                         case unitEmptyErr:
  75.                             PutPStr("\p (unitEmptyErr)");
  76.                             break;
  77.                         case notOpenErr:
  78.                             PutPStr("\p (notOpenErr)");
  79.                             break;
  80.                     }
  81.                 }
  82.  
  83.                 PutLine();
  84.             }
  85.             else
  86.                 dcmdDrawLine("\pSyntax error");
  87.  
  88.             dcmdSwapWorlds();
  89.             break;
  90.  
  91.         default:
  92.             PutPStr("\punknown request ");
  93.             PutUDec(paramPtr->request);
  94.             PutLine();
  95.             break;
  96.       }
  97. }
  98.